package com.system.travel.common.utils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 日期工具类
 * 提供日期格式化、日期获取等常用方法
 *
 * @author lucas
 * @date 2024/01/01
 */
public class DateUtils {
    
    /** 年份格式：yyyy */
    public static final String YYYY = "yyyy";
    
    /** 年月格式：yyyy-MM */
    public static final String YYYY_MM = "yyyy-MM";
    
    /** 年月日格式：yyyy-MM-dd */
    public static final String YYYY_MM_DD = "yyyy-MM-dd";
    
    /** 简单日期时间格式：yyyyMMddHHmmss */
    public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
    
    /** 标准日期时间格式：yyyy-MM-dd HH:mm:ss */
    public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
    
    /**
     * 日期格式化
     *
     * @param date 日期
     * @param pattern 格式
     * @return 格式化后的日期字符串
     */
    public static String format(Date date, String pattern) {
        if (date == null) {
            return null;
        }
        SimpleDateFormat df = new SimpleDateFormat(pattern);
        return df.format(date);
    }
    
    /**
     * 获取当前日期（yyyy-MM-dd）
     *
     * @return 当前日期字符串
     */
    public static String getDate() {
        return format(new Date(), YYYY_MM_DD);
    }
    
    /**
     * 获取当前时间（yyyy-MM-dd HH:mm:ss）
     *
     * @return 当前时间字符串
     */
    public static String getTime() {
        return format(new Date(), YYYY_MM_DD_HH_MM_SS);
    }
    
    /**
     * 获取当前时间戳（yyyyMMddHHmmss）
     *
     * @return 当前时间戳字符串
     */
    public static String dateTimeNow() {
        return format(new Date(), YYYYMMDDHHMMSS);
    }
} 